/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package View;

import Controle.Controlador;
import Controle.Uteis;
import Modelo.Cliente;
import Modelo.Fisico;
import Modelo.Juridico;
import Modelo.Seguro;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumnModel;

/**
 *
 * @author Silvio
 */
public class TelaMetodos {


      public static void colocarDados(DefaultTableModel t,Cliente c,Seguro s,float fatura, int tamanhotabela){
        
        String values[] = new String[tamanhotabela];
         values[7]=Uteis.Num(fatura);
        if(c instanceof Juridico){
             Juridico jur = (Juridico)c;
             values[5]=jur.getPessoa().getNome();
             t.addRow(dadosSeguro(s,values));
         }else if( c instanceof Fisico){
                Fisico fis = (Fisico)c;
                values[5]=fis.getPessoa().getNome();
                t.addRow(dadosSeguro(s,values));
         }

    }
    public static String [] dadosSeguro(Seguro s,String[] values){

         if(s.getDest().getCli() instanceof Juridico){
                    Juridico jur = (Juridico)s.getDest().getCli();
                    values[2]=jur.getPessoa().getNome();
                }else if(s.getDest().getCli() instanceof Fisico){
                    Fisico fis = (Fisico)s.getDest().getCli();
                    values[2]=fis.getPessoa().getNome();
                }

                if(s.getRem().getCli() instanceof Juridico){
                    Juridico jur = (Juridico)s.getRem().getCli();
                    values[1]=jur.getPessoa().getNome();
                }else if(s.getRem().getCli() instanceof Fisico){
                    Fisico fis = (Fisico)s.getRem().getCli();
                    values[1]=fis.getPessoa().getNome();
                }
         values[3]=s.getMer().getNome();
         values[4]=s.getVeic().getPlaca();
         values[0]=s.getSTRC();
         values[6]=Uteis.Num(s.getTotal());
          return values;
    }

     public static void RedFrame(JFrame frame){
        Toolkit toolkit= java.awt.Toolkit.getDefaultToolkit();
        Dimension d= toolkit.getScreenSize();
        frame.setMaximumSize(d.getSize());
        frame.setSize(d.getSize());
        frame.pack();
    }
    public static void RemoveDadosTabela(DefaultTableModel modelo, JTable tabela){
        while(modelo.getRowCount()>0){
            modelo.removeRow(0);
        }
         tabela.setModel(modelo);
         tabela.repaint();
         tabela.revalidate();
    }

    public static void defineRenderers(JTable jTable) {

        DefaultTableCellRenderer rendererCentro = new DefaultTableCellRenderer();
        rendererCentro.setHorizontalAlignment(SwingConstants.CENTER);


        JTableHeader header = jTable.getTableHeader();
        header.setPreferredSize(new Dimension(0, 35));
        TableColumnModel modeloDaColuna = jTable.getColumnModel();

        for(int i=0;i<modeloDaColuna.getColumnCount();i++){
             modeloDaColuna.getColumn(i).setCellRenderer(rendererCentro);
             modeloDaColuna.getColumn(i).setPreferredWidth(100);
        }

    }
    public static void Dispose(JFrame frame){
        if(Controlador.getFuncLogado().getNivelAcesso()==1){
                Iniciar iniciar = new Iniciar();
                iniciar.setVisible(true);
                frame.dispose();
            }else{
                IniciarFuncionario inif = new IniciarFuncionario();
                inif.setVisible(true);
                frame.dispose();
            }
    }
    
   public static void Texto(Container container) {
       for (Component c : container.getComponents()) {
          if (c instanceof JTextField) {
             ((JTextField)c).setText("");
          } else if (c instanceof Container)
             Texto((Container)c);
          }
   }
}

